package com.sgcc.nfc.lock.domain.repository

import com.sgcc.nfc.lock.core.network.NetworkResult
import com.sgcc.nfc.lock.domain.model.Lock
import com.sgcc.nfc.lock.domain.model.PagedList

interface LockRepository {
    suspend fun getLocks(
        page: Int,
        pageSize: Int,
        roomId: Long? = null,
        status: Int? = null,
        keyword: String? = null,
        regionId: Long? = null
    ): NetworkResult<PagedList<Lock>>

    suspend fun getLockDetail(lockId: Long): NetworkResult<Lock>
    suspend fun updateLockStatus(lockId: Long, status: Int, remark: String? = null): NetworkResult<Unit>
    suspend fun addLock(lockNfcId: String, roomId: Long): NetworkResult<Unit>
    suspend fun deleteLock(lockId: Long): NetworkResult<Unit>
}
